package com.lingz.manager.modules.camera.utils;

import com.lingz.manager.common.vo.PageVo;

import java.util.List;

/**
 * @Author: hanyuhang
 * @Description:
 * @Date:Create: 2022/9/7 10:37
 * @Modify:
 */
public class PageUtils<T> {

    public static<T> List<T> physicalPaging(List<T> list, PageVo pageVo) {

        // 获取当前页数，和每页显示的条数
        int pageNumber = pageVo.getPageNumber();
        int pageSize = pageVo.getPageSize();
        if (pageSize <= list.size()) {
            if (pageSize * pageNumber < list.size()) {
                list = list.subList(pageSize * (pageNumber - 1), pageSize * pageNumber);
            } else {
                list = list.subList(pageSize * (pageNumber - 1), list.size());
            }
        }
        return list;
    }

    public List<T> getPage(List<T> list, PageVo pageVo){
        // 当前页码
        int pageNumber = pageVo.getPageNumber();
        // 每页显示的条数
        int pageSize = pageVo.getPageSize();

        if (pageSize < list.size()) {
            // 判断数组是否越界  pageNumber*pageSize)>contracts.size() 就会越界
            if ((pageNumber * pageSize) > list.size()) {
                list = list.subList((pageNumber - 1) * pageSize, list.size());
            } else {
                list = list.subList((pageNumber - 1) * pageSize, pageNumber * pageSize);
            }
        }
        return list;
    }
}
